Шаг 55 – Элемент ActiveX Crystal Report Control. Управление формулами отчета из программы Visual Basic.

Мощным средством управления интегрированным в приложение отчетом является возможность изменения формул отчета во время выполнения пользовательской программы. Как уже было сказано в предыдущих шагах, в Crystal Reports имеется два типа формул:
- "обычные", служащие для производства текущих вычислений;
- формулы выделения записей.

Вначале рассмотрим управление "обычными" формулами. Элемент управления ActiveX Crystal Report Control предоставляет имеющиеся в отчете формулы в виде массива с индексацией от нуля. Для управления формулами служит свойство Formulas. Его синтаксис:

[форма.]Report.Formulas(индекс массива)[=Имя формулы=Текст формулы]

Если в отчете имеется несколько формул, то все их изменять не обязательно, можно ограничиться только требуемыми. Имя формулы необходимо вводить полностью, но без префикса @. Текст формулы обязательно должен передаваться в виде строки.

Предположим, необходимо сформировать отчет по продажам для двух ситуаций: со скидкой, и без таковой. Будем менять формулу из Шаг 18 - Применение полей формул часть 2.

Форма Visual Basic:

55_1.gif (7826 b)

Обработчик нажатия кнопки:

Private Sub cmdRep_Click()
Dim StrFormula As String 'здесь будет храниться текст формулы
If Val(txtBonus) > 0 Then 'пользователь ввел величину скидки
    StrFormula = "{Order Details.UnitPrice}*{Order Details.Quantity}*" & Str$(Val(txtBonus) * 0.01)
Else 'скидки нет
    StrFormula = "{Order Details.UnitPrice}*{Order Details.Quantity}"
End If
CrystalReport1.Formulas(0) = "PSum=" & StrFormula
CrystalReport1.Action = 1
End Sub

При нажатии кнопки анализируется содержимое текстового поля в форме, и в зависимости от его содержания изменяется формула.


Автор Юрий Гвоздев.
Hosted by uCoz